home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.cs.arizona.edu
/
ftp.cs.arizona.edu.tar
/
ftp.cs.arizona.edu
/
icon
/
newsgrp
/
group95a.txt
/
000049_icon-group-sender _Sun Feb 5 11:51:09 1995.msg
< prev
next >
Wrap
Internet Message Format
|
1995-02-09
|
5KB
Received: by cheltenham.cs.arizona.edu; Sun, 5 Feb 1995 10:48:23 MST
Date: Sun, 5 Feb 95 11:51:09 CST
From: goer@mithra-orinst.uchicago.edu (Richard L. Goerwitz)
Message-Id: <9502051751.AA10095@mithra-orinst.uchicago.edu>
To: icon-group@cs.arizona.edu
Subject: sockets, loadfunc, etc.
Errors-To: icon-group-errors@cs.arizona.edu
Sometimes I wish I could live two different lives - one as a CS
groupie, and another in my own field. Sigh.
As far as loadfunc goes, my observation was - when I first saw
it - that its arguments were in reverse order. Library first,
then function. The problem is that, in order to fully load a
function, and resolve all references external to the function
(including global variables) often requires iterative loads of
multiple libraries and functions. The GNU DLD system, as I re-
call, does things this way. So, as far as loadfunc is concern-
ed, this means that it should take a function as its first arg,
then a variable-length list of libraries.
Loadfunc, as it stands now, also appears to lean heavily on fea-
tures specific to just a few Unix platforms.
Things may have changed, and I may not be understanding properly.
This ain't my area, as I noted above. And certainly no one ex-
pects people like you, Clint, or Ralph, Gregg, etc., to cater to
every feature request. I really wish I had thetbasic ability
just to roll up my sleeves and work on the implementation myself,
but I don't any more.
I guess the deeper question with loadfunc, sockets, and every-
thing else like this, is not so much how one extends Icon to be
all things to all people. The question is how to provide a
simple, elegant, portable method of hooking Icon into platform-
specific utilities, libraries, and OS features. We obviously
can't exect sockets under DOS or many other such (minimal) op-
erating systems. And there's really no point in extending Icon
just for Unix. Yet loadfunc, as far as I know, is also very
platform-specific (relying, as noted, on what I believe to be
a not-widely-implemented feature of certain commercial Unix
systems), so even under Unix it's not possible to offer sockets
via an external interface. Either way, that is, we are stuck
(having either to design a large new module for the run-time
system, or use a platform-specific loadfunc tool).
The same problem, of course, comes up with wider modules like
the windowing system. Sure, it's great to have a windowing sys-
tem that works with a number of different platforms. But this
places a heavy, heavy implementation burden on the Icon Project.
One that has not yet been met. In a way, I wonder how it *can*
be met. You are human, after all. Yet I know that I personally
could no longer tack on an interface between, say, Icon and
Motif or a curses library (though I did create an interface to
the curses functions for 8.0, it was primitive, and I was never
happy with the way it went into Icon).
And, just to continue this line of thought a moment, I wonder
what happens as changes occur in areas like internationalization.
Motif 2.0 is becoming multilingual. You can now display mixed-
language text. On the Mac there is WorldScript. Under NT there
is some primitive Unicode support. It is crazy to think that
a few Icon programmers can duplicate all of this functionality.
Or that they would even want to. It's like doing sockets. The
goal should be to provide a generalized method of interfacing
Icon with platform-specific features and tools, without placing
the burden of implementation entirely on guys like you.
I don't want to imply, BTW, that graphics are bad. This idea
was and is really neat. But ultimately I think what we really
want is a pretty lean core Icon run-time system. I fear with
all the complexity of 9.0 and graphics that implementation will
become so difficult that development will essentially stall.
Worse yet, it will become well nigh impossible to find volun-
teers to work on Icon. I actually used to be able to do that
myself. Clint, you and Gregg probably remember with some amuse-
ment at how I worked through the initial code for getch() and
kbhit() for Unix (thanks for the help, BTW). But the point is
that, at version 8.0, even a dummy like me could do this sort
of thing.
So to end this over-long posting, the question of Icon's future,
I think, doesn't have so much to do with thinking through how
to do things like sockets in an elegant and platform-independent
fashion. Rather, it has more to do with how to avoid doing such
things - but yet of providing facilities for dummies like me to
access facilities already present in our OS for doing them.
Take this posting for what, if anything, it's worth. And feel
free to flame me if I don't seem to understand what is going
on.
Your friend (and a long-time, devoted Icon programmer),
Richard Goerwitz